﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace System.Runtime.Serialization.Advanced
{
  public interface IGraphable
  {
    string DataSetName { get; }
    int Revision { get; }
    string[] GetFieldNames();
    string[] GetChildrenNames();
    IEnumerable<IGraphable> GetChildren();
    void GetFields(DataContract contract, TextWriter writer);
    void SetFields(DataContract contract, TextReader reader, IEnumerable<object> children);
  }
}
